#ifndef NOSAL_EXEC_INTERNAL_CONFIG_ENTER_EXIT_TIMEOUT_H_
#define NOSAL_EXEC_INTERNAL_CONFIG_ENTER_EXIT_TIMEOUT_H_

#include <chrono>

namespace netaos {
namespace nosal {
namespace exec {
namespace internal {
namespace config {

/// @brief EnterExitTimeout represents Startup and Shutdown timeouts for States and Processes.
struct EnterExitTimeout final
{
    EnterExitTimeout();

    std::chrono::nanoseconds GetEnterTimeout() const noexcept
    {
        return std::chrono::nanoseconds(enter_timeout_);
    }
    std::chrono::nanoseconds GetExitTimeout() const noexcept
    {
        return std::chrono::nanoseconds(exit_timeout_);
    }

    std::int64_t enter_timeout_;
    std::int64_t exit_timeout_;
};

}  // namespace config
}  // namespace internal
}  // namespace exec
}  // namespace nosal
}  // namespace netaos

#endif  // NOSAL_EXEC_INTERNAL_CONFIG_ENTER_EXIT_TIMEOUT_H_
